home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Resource for Source: C/C++
/
Resource for Source - C-C++.iso
/
codelib9
/
v_11_02
/
1102054a
< prev
next >
Wrap
Text File
|
1995-11-01
|
6KB
|
180 lines
/*****************************************************
File Name: FINANCES.C
Description: Library of functions for
calculating interest rate
formulas
Global Function List: a_to_f
a_to_f_c
a_to_p
a_to_p_c
f_to_a
f_to_a_c
f_to_p
f_to_p_c
p_to_a
p_to_a_c
p_to_f
p_to_f_c
Portability: Standard C
******************************************************/
/* Standard C */
#include <math.h>
/* Own */
#include <finances.h>
/*****************************************************
Name: a_to_f
Description: annuity to future value
Parameters: i - effective interest rate per period
n - number of periods
Return: F/A - annuity to future value factor
*****************************************************/
double a_to_f( double i, int n )
{
return ( ( p_to_f( i, n ) - 1.0 ) / i );
}
/*****************************************************
Name: a_to_f_c
Description: Annuity to future value
continuous compounding
Parameters: r - nominal interest rate per period
n - number of periods
Return: F/A - Annuity to future value factor
*****************************************************/
double a_to_f_c( double r, int n )
{
return ( ( p_to_f_c( r, n ) - 1.0 ) /
( pow( LN_BASE, r ) - 1.0 ) );
}
/*****************************************************
Name: a_to_p
Description: annuity to present value
Parameters: i - effective interest rate per period
n - number of periods
Return: P/A - annuity to present value factor
*****************************************************/
double a_to_p( double i, int n )
{
return ( a_to_f( i, n ) / p_to_f( i, n ) );
}
/*****************************************************
Name: a_to_p_c
Description: annuity to present value
continuous compounding
Parameters: r - nominal interest rate per period
n - number of periods
Return: P/A - annuity to present value factor
*****************************************************/
double a_to_p_c( double r, int n )
{
return ( a_to_f_c( r, n ) / p_to_f_c( r, n ) );
}
/*****************************************************
Name: f_to_a
Description: future value to annuity
Parameters: i - effective interest rate per period
n - number of periods
Return: A/F - future value to annuity factor
*****************************************************/
double f_to_a( double i, int n )
{
return ( 1.0 / a_to_f( i, n ) );
}
/*****************************************************
Name: f_to_a_c
Description: future value to annuity
continuous compounding
Parameters: r - nominal interest rate per period
n - number of periods
Return: A/F - future value to annuity factor
*****************************************************/
double f_to_a_c( double r, int n )
{
return ( 1.0 / a_to_f_c( r, n ) );
}
/*****************************************************
Name: f_to_p
Description: future value to present value
Parameters: i - effective interest rate per period
n - number of periods
Return: P/F - future to present value factor
*****************************************************/
double f_to_p( double i, int n )
{
return ( 1.0 / p_to_f( i, n ) );
}
/*****************************************************
Name: f_to_p_c
Description: future value to present value
continuous compounding
Parameters: r - nominal interest rate per period
n - number of periods
Return: P/F - future to present value factor
*****************************************************/
double f_to_p_c( double r, int n )
{
return ( 1.0 / p_to_f_c( r, n ) );
}
/*****************************************************
Name: p_to_a
Description: present value to annuity
Parameters: i - effective interest rate per period
n - number of periods
Return: A/P - present value to annuity factor
*****************************************************/
double p_to_a( double i, int n )
{
return ( p_to_f( i, n ) / a_to_f( i, n ) );
}
/*****************************************************
Name: p_to_a_c
Description: present value to annuity
continuous compounding
Parameters: r - nominal interest rate per period
n - number of periods
Return: A/P - present value to annuity factor
*****************************************************/
double p_to_a_c( double r, int n )
{
return ( p_to_f_c( r, n ) / a_to_f_c( r, n ) );
}
/*****************************************************
Name: p_to_f
Description: present value to future value
Parameters: i - effective interest rate per period
n - number of periods
Return: F/P - present to future value factor
*****************************************************/
double p_to_f( double i, int n )
{
return ( pow( 1 + i, n ) );
}
/*****************************************************
Name: p_to_f_c
Description: present value to future value
continuous compounding
Parameters: r - nominal interest rate per period
n - number of periods
Return: F/P - present to future value factor
*****************************************************/
double p_to_f_c( double r, int n )
{
return ( pow( LN_BASE, r * n ) );
}